package pe.com.bbva.pct.dao.impl;

import java.util.ArrayList;
import java.util.List;

import javax.persistence.Query;

import org.springframework.stereotype.Repository;

import pe.com.bbva.pct.dao.RelacionFuenteEntidadDAO;
import pe.com.bbva.pct.domain.RelacionFuenteEntidad;
import pe.com.bbva.pct.util.ConstantesGenerales;

@Repository("relacionFuenteEntidadDao")
public class RelacionFuenteEntidadDAOImpl extends GeneralDAOImpl<RelacionFuenteEntidad> implements RelacionFuenteEntidadDAO {

	@SuppressWarnings("unchecked")
	@Override
	public List<RelacionFuenteEntidad> obtenerRelacionFuenteEntidad(Long idReglaFuente)throws Exception{
		List<RelacionFuenteEntidad> listaRelacionFuenteEntidad = new ArrayList<RelacionFuenteEntidad>();
		try {
			
			
			StringBuilder queryString = new StringBuilder();
			queryString.append("SELECT p FROM RelacionFuenteEntidad p WHERE  p.idReglaFuente.idReglaFuente = :pIdReglaFuente AND p.idEstado.idValor <> " + ConstantesGenerales.VALOR_ELIMINADO);
			Query query = em.createQuery(queryString.toString());
			query.setParameter("pIdReglaFuente", idReglaFuente);
			listaRelacionFuenteEntidad = query.getResultList();
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		return listaRelacionFuenteEntidad;
	}
	
	
	public List<RelacionFuenteEntidad> obtenerRelacionesPorDetalleFuente(Long idDetalleFuente)throws Exception{
		List<RelacionFuenteEntidad> listaRelacionFuenteEntidad = new ArrayList<RelacionFuenteEntidad>();
		try {
			
			
			StringBuilder queryString = new StringBuilder();
			queryString.append("SELECT p FROM RelacionFuenteEntidad p WHERE  p.idDetalleFuente.idDetalleFuente = :pIdDetalleFuente AND p.idEstado.idValor = " + ConstantesGenerales.EST_ACTIVO_VALOR_LISTADO);
			Query query = em.createQuery(queryString.toString());
			query.setParameter("pIdDetalleFuente", idDetalleFuente);
			listaRelacionFuenteEntidad = query.getResultList();
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		return listaRelacionFuenteEntidad;
	}
}
